package com.example.myproject;

/**
 * Created by Administrator on 2018/3/30 0030.
 */

/**
 * 据说 闭包有解决方式
 * <p>
 * 第0波，需要使用代理的方式来解决  比如创建函数  返回函数对象
 */
public class AClosureImpl {

    public AClosureInf getC() {
        return new ClosureImpl();
    }

    public AClosureInf getB() {
        return new AClosureInf() {
            @Override
            public void eats() {
//  第二波，直接使用返回值来实现
            }
        };
    }

    public AClosureInf getA() {
        class BClosureImpl implements AClosureInf {

            @Override
            public void eats() {
//  第一波，这里的对象采用内部建类实现的方式   类似，匿名内部类
            }
        }
        return new BClosureImpl();
    }


    private class ClosureImpl implements AClosureInf {

        @Override
        public void eats() {

        }
    }


}
